<?php

namespace app\common\util;

class ErrorCode
{
    public static function code($code, $text = '')
    {
        $returnCode = self::$errorCode[$code];
        if(empty($returnCode)){
            $returnCode = self::$errorCode["code_not_exist"];
        }
        if(strpos($returnCode['msg'], "%s") !== false && $text){
            $returnCode['msg'] = sprintf($returnCode['msg'], $text);
        }
        return $returnCode;
    }

    static $errorCode = [
        'success'               => ['code' => 0, 'msg' => '请求成功'],
        'fail'                  => ['code' => -1, 'msg' => '请求失败'],
        'request_error'         => ['code' => 100, 'msg' => '请求类型错误'],
        'params_error'          => ['code' => 101, 'msg' => '%s错误'],
        'params_not_exist'      => ['code' => 102, 'msg' => '%s不能为空'],
        'params_format'         => ['code' => 103, 'msg' => '%s格式错误'],
        'not_exist'             => ['code' => 104, 'msg' => '数据不存在'],
        'code_not_exist'        => ['code' => 111, 'msg' => '错误码不存在'],
        'account_error'         => ['code' => 200, 'msg' => '账号或密码错误'],
        'token_expire'          => ['code' => 201, 'msg' => '用户凭证无效或已过期'],
        'account_not_exist'     => ['code' => 202, 'msg' => '账号不存在'],
        'auth_fail'             => ['code' => 203, 'msg' => '无访问权限'],
        'account_disable'       => ['code' => 204, 'msg' => '账号已被禁用，请联系管理员'],
        'mobile_exist'          => ['code' => 311, 'msg' => '手机号已存在'],
        'email_exist'           => ['code' => 312, 'msg' => '邮箱已存在'],
        'qq_exist'              => ['code' => 313, 'msg' => 'qq已存在'],
        'param_exist'           => ['code' => 314, 'msg' => '%s已存在'],
        'openid_exist'          => ['code' => 313, 'msg' => 'openid已存在'],
        'no_bind'               => ['code' => 315, 'msg' => '%s'],
        'id_card_error'         => ['code' => 321, 'msg' => '身份证号错误'],
        'method_not_exist'      => ['code' => 401, 'msg' => '方法不存在'],
        'ip_token_error'        => ['code' => 402, 'msg' => 'Token不允许在不同IP里使用，请重新登录'],
        'config_not_exist'      => ['code' => 403, 'msg' => '%s配置数据不存在'],
        'mall_id_not_exist'     => ['code' => 423, 'msg' => '缺少商城ID参数mallId'],
        'try_error'             => ['code' => 404, 'msg' => '%s'],
        'customized'            => ['code' => 501, 'msg' => '%s'],
        'mall_expired'          => ['code' => 502, 'msg' => '商城已过有效期，请联系管理员'],
        'account_expired'       => ['code' => 503, 'msg' => '账号已过有效期，请联系管理员'],
    ];

    static $wxChatCode = [
        "0" => "请求成功", "40001" => "AppSecret错误或者AppSecret不属于小程序或者公众号", "40002" => "不合法的grant_type", "40003" => "不合法的OpenID", "40004" => "不合法的媒体文件类型",
        "40007" => "不合法的media_id", "40008" => "不合法的message_type", "40009" => "不合法的图片大小", "40010" => "不合法的语音大小", "40011" => "不合法的视频大小",
        "40012" => "不合法的缩略图大小", "40013" => "不合法的AppID", "40014" => "不合法的access_token", "40015" => "不合法的菜单类型", "40016" => "不合法的菜单按钮个数",
        "40017" => "不合法的按钮类型", "40018" => "不合法的按钮名称长度", "40019" => "不合法的按钮KEY长度", "40020" => "不合法的url长度", "40023" => "不合法的子菜单按钮个数",
        "40024" => "不合法的子菜单类型", "40025" => "不合法的子菜单按钮名称长度", "40026" => "不合法的子菜单按钮KEY长度", "40027" => "不合法的子菜单按钮url长度",
        "40029" => "不合法或已过期的code", "40030" => "不合法的refresh_token", "40036" => "不合法的template_id长度", "40037" => "不合法的template_id", "40039" => "不合法的url长度",
        "40048" => "不合法的url域名", "40054" => "不合法的子菜单按钮url域名", "40055" => "不合法的菜单按钮url域名", "40066" => "不合法的url", "40101" => "缺少必填参数",
        "40125" => "AppSecret 错误或者 AppSecret 不属于这个小程序", "40164" => "当前IP不是公众号或小程序的IP白名单，请在IP白名单中进行设置", "41001" => "缺失access_token参数",
        "41002" => "缺失appid参数", "41003" => "缺失refresh_token参数", "41004" => "缺失secret参数", "41005" => "缺失二进制媒体文件", "41006" => "缺失media_id参数",
        "41007" => "缺失子菜单数据", "41033" => "小程序不是通过第三方平台创建", "41008" => "缺失code参数", "41009" => "缺失openid参数", "41010" => "缺失url参数",
        "42001" => "access_token超时", "42002" => "refresh_token超时", "42003" => "code超时", "43001" => "需要使用GET方法请求", "43002" => "需要使用POST方法请求",
        "43003" => "需要使用HTTPS", "43004" => "需要订阅关系", "44001" => "空白的二进制数据", "48001" => "小程序未授权", "44002" => "空白的POST数据", "44003" => "空白的news数据",
        "44004" => "空白的内容", "44005" => "空白的列表", "45001" => "二进制文件超过限制", "45002" => "content参数超过限制", "41030" => "所传page页面不存在，或者小程序没有发布",
        "50002" => "用户受限，请检查小程序或者公众号", '61004' => '当前客户端ip未在开放平台白名单', '61023' => '授权已过期,请重新授权', "45003" => "title参数超过限制",
        "45004" => "description参数超过限制", "45005" => "url参数长度超过限制", "45006" => "picurl参数超过限制", "45007" => "播放时间超过限制（语音为60s最大）",
        '61007' => '公众号或者小程序已在公众平台解绑或者权限集不够，不具备调用该接口的权限', "45008" => "article参数超过限制", "45009" => "接口调动频率超过限制",
        "45010" => "建立菜单被限制", "45011" => "频率限制", "45012" => "模板大小超过限制", "45016" => "不能修改默认组", "45017" => "修改组名过长", "45018" => "组数量过多",
        "50001" => "接口未授权", "85015" => "该账号不是小程序账号", '85001' => '微信号不存在或微信号设置为不可搜索', '85002' => '小程序绑定的体验者数量达到上限',
        '85003' => '微信号绑定的小程序体验者达到上限', '85004' => '微信号已经绑定', '85079' => '小程序没有线上版本，不能进行灰度', '85080' => '小程序提交的审核未审核通过',
        '87011' => '现网已经在灰度发布，不能进行版本回退', '87013' => '撤回次数达到上限（每天一次，每个月10次）', "85016" => "域名数量超过限制",
        '87012' => '该版本不能回退，可能的原因：1:无上一个线上版用于回退 2:此版本为已回退版本，不能回退 3:此版本为回退功能上线之前的版本，不能回退',
        "85017" => "没有新增域名，请确认小程序已经添加了域名或该域名是否没有在第三方平台添加", "85018" => "域名没有在第三方平台设置",
        "89019" => "业务域名无更改，无需重复设置", "89020" => "尚未设置小程序业务域名，请先在第三方平台中设置小程序业务域名后在调用本接口", "85058" => "未查询到小程序的提审记录",
        "89021" => "请求保存的域名不是第三方平台中已设置的小程序业务域名或子域名", "89029" => "业务域名数量超过限制", "89231" => "个人小程序不支持调用 setwebviewdomain 接口",
        "-1" => "系统繁忙", "85064" => "找不到模版", "85013" => "无效的自定义配置", "85014" => "无效的模版编号", "85043" => "模版错误", "85044" => "代码包超过大小限制",
        "85045" => "ext_json 有不存在的路径", "85046" => "tabBar 中缺少 path", "85047" => "pages 字段为空", "85048" => "ext_json 解析失败", "80082" => "没有权限使用该插件",
        "80067" => "找不到使用的插件", "80066" => "非法的插件版本", "86000" => "不是由第三方代小程序进行调用", "86001" => "不存在第三方的已经提交的代码", "85006" => "标签格式错误",
        "85007" => "页面路径错误", "85008" => "类目填写错误", "85009" => "已经有正在审核的版本", "85010" => "item_list 有项目为空", "85011" => "标题填写错误", "85012" => "无效的审核 id",
        "61003" => "公众号或者小程序需要重新授权第三方平台", "85023" => "审核列表填写的项目数不在 1-5 以内", "85077" => "小程序类目信息失效（类目中含有官方下架的类目，请重新选择类目）",
        "86002" => "小程序还未设置昵称、头像、简介。请先设置完后再重新提交", "85085" => "近 7 天提交审核的小程序数量过多，请耐心等待审核完毕后再次提交", "85020" => "审核状态未满足发布",
        "85086" => "提交代码审核之前需提前上传代码", "85087" => "小程序已使用 api navigateToMiniProgram，请声明跳转 appid 列表后再次提交", "85019" => "没有审核版本",
        "-1000" => "系统错误	", "85088" => "该APP未开通云开发", "-401001" => "SDK 通用错误：无权限使用 API", "-401002" => "SDK 通用错误：API 传入参数错误", "40097" => "参数错误",
        "-401003" => "SDK 通用错误：API 传入参数类型错误", "-402001" => "SDK 数据库错误：检测到循环引用", "-403001" => "SDK 文件存储错误：上传的文件超出大小上限",
        "-40400" => "SDK 云函数错误：云函数调用失败", "-404011" => "SDK 云函数错误：云函数执行失败", "-501001" => "云端系统错误", "-501002" => "云端响应超时",
        "-501003" => "请求次数超出环境配额", "-501004" => "请求并发数超出环境配额", "-501005" => "环境信息异常", "-501007" => "参数错误", "-501009" => "操作的资源对象非法或不存在",
        "-501015" => "读请求次数配额耗尽", "-501016" => "写请求次数配额耗尽", "-501017" => "磁盘耗尽", "-501018" => "资源不可用或者云环境数已经2个了", "-501019" => "未授权操作",
        "-501020" => "未知参数错误", "-501021" => "操作不支持", "-502001" => "数据库请求失败", "-502002" => "非法的数据库指令", "-502003" => "无权限操作数据库",
        "-502005" => "集合不存在", "-502010" => "操作失败", "-502011" => "操作超时", "-502012" => "插入失败", "-502013" => "创建集合失败", "-502014" => "删除数据失败",
        "-502015" => "查询数据失败", "-503001" => "云资源文件存储错误：云文件请求失败", "-503002" => "云资源文件存储错误：无权限访问云文件", "-504001" => "云函数调用失败",
        "-503003" => "云资源文件存储错误：非法签名", "-504002" => "云函数执行失败", "-601001" => "系统错误", "-601002" => "系统参数错误", "-601003" => "系统网络错误",
        "-604001" => "微信后台云函数错误：回包大小超过 1M", "-604102" => "微信后台云函数错误：调用超时", "-604101" => "微信后台云函数错误：调用系统错误",
        "-605101" => "微信后台 HTTP API 错误：查询语句解析失败",
    ]; // 微信返回的消息

    static $wxMiniAuthCode = [
        "0" => "成功", "-1" => "非法action参数	", "89249" => "该主体已有任务执行中，距上次任务24h后再试", "89247" => "内部错误",
        "86004" => "无效微信号", "61070" => "法人姓名与微信号不一致", "89248" => "企业代码类型无效，请选择正确类型填写",
        "89250" => "未找到该任务", "89251" => "模板消息已下发，待法人人脸核身校验", "89252" => "法人&企业信息一致性校验中",
        "89253" => "缺少参数", "89254" => "第三方权限集不全，补全权限集全网发布后生效", "89255" => "企业代码不正确或者校验错误"
    ]; // 微信第三方创建小程序

    static $wxMiniAuthResultCode = [
        "100001"=>"已下发的模板消息法人并未确认且已超时（24h），未进行身份证校验", "100002"=>"已下发的模板消息法人并未确认且已超时（24h），未进行人脸识别校验",
        "100003"=>"已下发的模板消息法人并未确认且已超时（24h）", "101"=>"工商数据返回：“企业已注销”", "102"=>"工商数据返回：“企业不存在或企业信息未更新”",
        "103"=>"工商数据返回：“企业法定代表人姓名不一致”", "104"=>"工商数据返回：“企业法定代表人身份证号码不一致”", "105"=>"法定代表人身份证号码，工商数据未更新，请5-15个工作日之后尝试",
        "1000"=>"工商数据返回：“企业信息或法定代表人信息不一致”", "-1"=>"企业与法人姓名不一致", "1001"=>"主体创建小程序数量达到上限", "1002"=>"主体违规命中黑名单",
        "1003"=>"管理员绑定账号数量达到上限", "1004"=>"管理员违规命中黑名单", "1005"=>"管理员手机绑定账号数量达到上限", "1006"=>"管理员手机号违规命中黑名单",
        "1007"=>"管理员身份证创建账号数量达到上限", "1008"=>"管理员身份证违规命中黑名单", '0' => "成功"
    ]; // 微信第三方创建小程序回调结果返回的消息
}